import React from 'react';
import classNames from 'classnames';
import { sizeCaculator } from '../utils';

/**
 * 文件上传的速度信息
 * 它只有当file.state是paused或者uploading状态时，才显示
 * 并且listType=text的情况下是不显示的
 * @param {any} props 必须要有 listType, file 和 formatText 三个字段
 * formatText是一个带有返回值的
 */
export default function FileSpeed(props) {
    const {
        listType,
        file = {},
        formatText = f => f,
        className
    } = props;
    const { state = '', speed: fileSpeed = 0 } = file;

    if ((state !== 'paused' && state !== 'uploading') || listType === 'text') {
        return null;
    }

    const speed = formatText(listType, file) || `${sizeCaculator(fileSpeed)}/s`;

    return (
        <div className={classNames([
            'file-speed',
            { [`file-speed--${listType}`]: listType },
            className
        ])}>
            {speed}
        </div>
    );
}
